package com.ruoyi.system.utils;

import cn.hutool.json.JSONUtil;
import com.ruoyi.system.domain.SysContracts;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * 该函数是一个UDP客户端，用于向指定的IP地址和端口发送包含系统合约信息的JSON格式数据包。在函数中，首先创建一个DatagramSocket客户端socket，.
 * 然后将系统合约对象takePosition转换为JSON字符串，将其编码为字节数组，并封装到DatagramPacket数据包中。最后，通过socket发送该数据包.
 * ，并打印发送成功的提示信息。如果在发送过程中出现UnknownHostException或IOException异常，则将其转换为运行时异常抛出。
 */
public class UDPClient {
    public void UDPClient(SysContracts takePosition){
        try (DatagramSocket socket=new DatagramSocket()){
//          String message="BUY:"+takePosition.getStockCode()+":"+takePosition.getId()+":"+takePosition.getVolumePrice();
            String message = JSONUtil.toJsonStr(takePosition);
            byte[] data = message.getBytes();
            InetAddress addresses = InetAddress.getByName("127.0.0.1");
            int port=8085;
            DatagramPacket packet = new DatagramPacket(data, data.length, addresses, port);
            socket.send(packet);
            System.out.println("发送成功");
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
